/**	
 * 
 */
package translator.objects;

import java.io.PrintStream;
import java.util.*;

/**
 * @author riche
 *
 */
public class Component extends Entity {
	
	Map<String, Port> p_map;
	
	/**
	 * @param name
	 */
	public Component(String ident, String name, Map<String, Port> p_map) {
		super(ident, name);
		this.p_map = p_map;
		for(Port p : this.p_map.values()) {
			System.err.println(this.getIdent());
			p.setCompID(this.getIdent());
		}
	}
	
	public void printPorts() {
		for(Port p : this.p_map.values()) {
			System.out.println("\t" + p.getIdent());
		}
	}

	public void generateInclude(PrintStream fo) {
		fo.println("from ft.sample import " + this.getPackage());
	}
	
	@Override
	public void generateCode(PrintStream fo) {
		fo.println("\t\tself.add_component("+ this.getPackage() + "." + this.getName() +"(\"" + this.getNID() + "\"))");		
	}

}
